#include <IO/VideoTextMode.h>
#include <Utility/intrinsic.h>
/*
@brief 获取文本模式下的光标位置
@param void
@return 光标位置
*/
WORD VideoTextModeLocateCursor(void)
{
    /*
    * 向地址寄存器传入选项，再从数据寄存器取出数据
    * 先取出光标高字节，再取出光标低字节
    */
    OUT_BYTE(CRT_CONTROLLER_ADDR_REG, CRT_CONTROLLER_CURSOR_LOCATION_HIGH);
    BYTE bCursorPosHigh = IN_BYTE(CRT_CONTROLLER_DATA_REG);
    OUT_BYTE(CRT_CONTROLLER_ADDR_REG, CRT_CONTROLLER_CURSOR_LOCATION_LOW);
    BYTE bCursorPosLow = IN_BYTE(CRT_CONTROLLER_DATA_REG);
    return MAKEWORD(bCursorPosLow, bCursorPosHigh);
}
